%% == Erlang Compiler ==

{erl_opts, [
  warn_unused_vars,
  warn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_missing_spec,
  warn_untyped_record,
  debug_info
]}.

{minimum_otp_vsn, "19"}.

%% == Dependencies ==

{deps, [
  {gun, "1.3.3"},
  {jsx, "3.0.0"},
  {base64url, "1.0.1"}
]}.

%% == Profiles ==

{profiles, [
  {test, [
    {erl_opts, [
        nowarn_missing_spec
    ]},
    {deps, [
      {katana_test, "1.0.1"},
      {katana, "1.0.0"},
      {mixer, "1.1.1", {pkg, inaka_mixer}},
      {meck, "0.9.2"}
    ]}
  ]}
]}.

%% == Common Test ==

{ct_compile_opts, [
  warn_unused_vars,
  warn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_missing_spec,
  warn_untyped_record,
  debug_info
]}.

{ct_opts, [
  {sys_config, ["test/test.config"]}
]}.

%% == Cover ==

{project_plugins, [coveralls]}.

{cover_enabled, true}.

{cover_export_enabled, true}.

{cover_opts, [verbose]}.

%% == EDoc ==

{edoc_opts, [
  {report_missing_types, true},
  {source_path, ["src"]},
  {report_missing_types, true},
  {todo, true},
  {packages, false},
  {subpackages, false}
]}.

%% == Dialyzer ==

{dialyzer, [
  {plt_apps, top_level_deps},
  {plt_extra_apps, []},
  {plt_location, local},
  {plt_prefix, "apns"},
  {base_plt_location, "."},
  {base_plt_prefix, "apns"}
]}.

%% == Xref ==

{xref_checks, [
    undefined_function_calls,
    locals_not_used,
    deprecated_function_calls
]}.
